5

Koderegelsett

Noe av det vanskeligste med XML er å konvertere innhold fra opprinnelig format til XML-format. Et QuarkXPress Passport-dokument er gjerne organisert med tekstmaler og andre konvensjoner, men hvordan oversettes en slik organisering til XML?

Med avenue.quark kan du automatisere denne prosessen. Med et QuarkXPress Passport-dokument og en DTD, kan du bruke avenue.quark til å lage et «koderegelsett», som automatisk kartlegger kombinasjoner av QuarkXPress Passport-tekstmaler, -farger og -stiler i forhold til elementtyper i en DTD.


Regelbasert koding

Med koderegelsett kan du tilordne QuarkXPress Passport-tekstmaler og -tekststiler til elementer i en DTD. Koderegelsett automatiserer deler av oppgaven med å kode et QuarkXPress Passport-dokument.

Hvis du vil vite mer om hvordan du bruker koderegelsett til regelbasert koding, slår du opp på kapittel 6, «Koding av innhold».



Hva er et koderegelsett?

Med et koderegelsett kan du angi at når du bruker regelbasert koding, skal innhold som oppfyller visse kriterier, kodes med et bestemt elementnavn. Du kan for eksempel lage en koderegel som angir at alle avsnitt som bruker avsnittstekstmalen «Overskrift», skal kodes som et <overskrift>-element.

Et koderegelsett er et navngitt koderegelsett der alle reglene er basert på én enkelt DTD. Hver koderegel spesifiserer hvilke tekstmaler, farger og tekststiler som skal tilordnes de tilsvarende elementene. Koderegelen som for eksempel er brukt i den neste figuren, angir at tekst som bruker tekstmalen «01 tittel», skal kodes med elementtypen <tittel>:

Med koderegelsett bestemmer du hvordan regelbasert koding skal brukes.

Her kan du f.eks. legge til en ny regel som angir at kursiv tekst i avsnitt som bruker tekstmalen «01 tittel», skal kodes med koder av typen <utheving> på følgende måte:

Med koderegelsett kan du neste elementer inni andre elementer.

Med de to kodereglene som er angitt ovenfor, kodes kanskje avsnitt som bruker avsnittstekstmalen «01 Tittel» og inneholder kursiv tekst, på følgende måte:

<tittel>Hva hushjelpen <utheving>egentlig </utheving>hørte</tittel>

for at den valgte elementtypen skal brukes, må alle kriteriene under Regelinnstillinger være oppfylt. Koderegelen i figuren angir for eksempel at bare tekst som bruker avsnittstekstmalen «02 forfatter» og er rød og er skrevet med halvfete typer, skal kodes med elementtypen <forfatter>:

Alle koderegelkriterier må oppfylles for at regelen skal kunne brukes.

Hvis du vil at andre typer formateringer også skal tilordnes en bestemt elementtype, kan du lage ekstra regler for den aktuelle elementtypen. Du har kanskje to ulike avsnittstekstmaler for navn: én tekstmal for fornavn i listen, og én annen for alle andre navn i listen. (Dette er vanlig av hensyn til plassen.) I så fall kan du lage to koderegler for elementtypen <navn>. Den ene tilordner tekstmalen «Fornavn» til <navn>, mens den andre tilordner tekstmalen «Andre navn» til <navn>. I avenue.quark kodes dermed avsnitt som oppfyller kriteriet til den ene eller andre regelen, som elementer av typen <navn>.

Hvem lager koderegelsett? I mange situasjoner er det best å la den administrative delen av en organisasjon ta seg av opprettingen av koderegelsett.



Slik fungerer regelbasert tekstkoding

Når du bruker regelbasert koding på en blokk med ren tekst, går avenue.quark gjennom teksten fra begynnelse til slutt for å prøve å kode teksten i samsvar med DTD-en. På et gitt tidspunkt i prosessen søker avenue.quark forover for å se etter tekst som oppfyller kriteriene til en regel som stemmer med DTD-en.

Tekst som ikke kan kodes i henhold til en koderegel, blir ignorert.



Motstridende koderegler

La oss anta at du har laget et koderegelsett som inneholder to regler. Den første regelen går ut på at tekst som bruker «Brødtekst», skal kodes som et element av typen <brødtekst>. Den andre regelen sier at tekst som bruker «Brødtekst», skal kodes som et element av typen <avsnitt>. Hva skjer hvis du bruker dette koderegelsettet på en blokk som inneholder et tekstavsnitt som bruker tekstmalen «Brødtekst»?

I slike tilfeller får du fram en dialogboks i avenue.quark der du blir bedt om å velge hvilken elementtype du vil bruke. Dialogboksen Velg Regel/Posisjon vises alltid når to eller flere regler kan brukes på én og samme tekst.

Kanskje du vil at avenue.quark skal kode den samme teksten to ganger, og at en kopi av teksten skal settes inn både i et <brødtekst>-element og et <avsnitt>-element? I så fall må du lage to koderegelsett: ett som går ut på at «Brødtekst» skal kodes som et element av typen <brødtekst>, og ett som går ut på at «Brødtekst» skal kodes som et element av typen <avsnitt>. Dermed utføres regelbasert koding to ganger på samme tekst, én gang for hvert koderegelsett.


Dialogboksen Velg Regel/Posisjon


Bruk av koderegelsett

Med et koderegelsett kan du tilordne QuarkXPress Passport-tekstmaler, -farger og -tekststiler til elementer i en DTD. Koderegelsettene automatiserer deler av arbeidet med å kode et QuarkXPress Passport-dokument.

Hvis du vil vite hvordan du bruker koderegelsett i regelbasert koding, slår du opp på kapittel 6, «Koding av innhold».



Oppretting av koderegelsett

Med koderegelsett kan du angi hvordan tekst skal kodes ved bruk av regelbasert koding. Slik lager du et koderegelsett:

1. Lag eller åpne XML-dokumentet som du skal opprette et koderegelsett for.


2. Lag eller åpne et QuarkXPress Passport-dokument som inneholder alle tekstmalene og fargene du vil bruke i koderegelsettet.


3. Velg Rediger > Koderegler. Dialogboksen Koderegler åpnes.


Opprett et nytt koderegelsett via dialogboksen Koderegler.

4. Velg knappen Nytt sett for å lage et nytt koderegelsett. Dialogboksen Rediger koderegelsett åpnes, og rotelementet og filtypen for DOCTYPE vises i tittellinjen.


I paletten Rediger koderegelsett kan du opprette og redigere et koderegelsett.

5. Skriv inn et navn på koderegelsettet i feltet Navn.


6. Velg en elementtype med halvfet skrift i listen til venstre. (Hvis navnet på en elementtype ikke kan velges, betyr det at DTD-en ikke tillater at du tilordner regler til den.) Hvis du vil utvide et beholderelement og vise alle elementene det inneholder, klikker du på ikonet (Mac OS) eller ikonet (Windows) ved siden av elementet. Du får fram flere av DTD-ene ved å bla i listen.


7. Når du skal legge til en ny regel til koderegelsettet, velger du Legg til regel. Dermed tilføyes en tom regel til Regler-listen.


8. Hvis du skal konfigurere koderegelen, slik at tekst som bruker en bestemt tekstmal, blir kodet, velger du Tekstmal og deretter et tekstmalnavn på hurtigmenyen Tekstmal. Hvis du vil at flere fortløpende avsnitt med den angitte avsnittstekstmalen skal settes inn i separate elementer, velger du Ny kode for hvert avsnitt. Hvis du derimot vil at flere fortløpende avsnitt med den angitte avsnittstekstmalen skal settes inn i ett enkelt element, merker du ikke av i denne boksen. Tekstmaler som står oppført i kursiv, finnes ikke i det aktive QuarkXPress Passport- dokument.


For at alternativet Ny kode for hvert avsnitt skal fungere, må DTD-en støtte flere sekvensielle forekomster av det valgte elementet.


9. Hvis du skal konfigurere koderegelen, slik at den automatisk koder tekst med en bestemt farge, velger du Farge og deretter fargenavnet på hurtigmenyen Farge. Fargenavn som står oppført i kursiv, finnes ikke i det aktive QuarkXPress Passport-dokumentet.


Koderegelsett omfatter kun navnene på tekstmalene og fargene. Hvis du forandrer navn på en tekstmal eller farge i dokumentet, må du også oppdatere koderegelsettet.


10. Hvis du skal konfigurere koderegelsettet, slik at det automatisk koder tekst som bruker en bestemt kombinasjon av stiler, velger du Stil og klikker deretter på ikonene for å angi hvilken stil som skal kodes. Et stilikon på svart bakgrunn betyr at teksten må bruke denne stilen for å kunne kodes. Et stilikon på hvit bakgrunn, betyr at teksten med denne stilen ikke vil bli kodet. Et stilikon på grå bakgrunn, betyr at denne stilen ikke medregnes ved regelbasert koding.


Husk at tekst ikke er kodet før du har utført regelbasert koding på den. Du kan lese mer om regelbasert koding i kapittel 6, «Koding av innhold».


11. Hvis du vil legge til en ny regel for den valgte elementtypen, velger du Legg til regel og gjentar deretter trinn 8 til og med 10. Hvis du vil lage en ny regel basert på en gammel regel, merker du først den gamle regelen i listen Regler. Deretter velger du Dupliser for å lage en kopi av regelen, slik at du kan redigere kopien.


12. Hvis du vil slette en regel fra det valgte elementet, merker du regelen i listen Regler og velger Slett.


Elementtyper som det finnes regler for, vises med kursiv i DTD-listen.


13. Lagre endringene i koderegelsettet ved å velge OK.


14. Velg Arkiver (Mac OS) eller Lagre (Windows) for å lukke dialogboksen Koderegler.


Hvis en elementtype forekommer flere ganger i DTD-treet, blir eventuelle regler som du lager for én av forekomstene, også brukt på alle de andre forekomstene.


Hva om du vil lage et koderegelsett som omfatter regler for tekstmaler fra forskjellige dokumenter? Da er det bare å lage et nytt dokument, legge til alle tekstmalene fra de forskjellige dokumentene (Arkiv (Mac OS) eller Fil (Windows), > Legg til > kategorien Tekstmal) og deretter lage dine egne koderegler.



Redigering, duplisering og sletting av koderegelsett

I dialogboksen Koderegler (menyen Rediger) kan du redigere, duplisere og slette koderegelsett. Velge ganske enkelt et koderegelsett i listen og klikk på én av følgende knapper: